#include "drv_beep.h"
#include "delay.h"

void drv_beep_init(void)
{
		//GPIO_InitTypeDef GPIO_InitStruct;
		//RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//开启gpioa的时钟
		//GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;       // 输出模式
    //GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;      // 推挽输出
    //GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;    // 无上拉下拉（或按需改）
    //GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;    // 低速即可
    //GPIO_InitStruct.GPIO_Pin = GPIO_Pin_15;

    //GPIO_Init(GPIOA, &GPIO_InitStruct);

    // 初始化默认关闭蜂鸣器（输出高/低根据硬件电路定，这里假设低电平响，初始置高）
    //GPIO_ResetBits(GPIOA, GPIO_Pin_15); 
		RCC->AHB1ENR |= 0x01;//开启GPIOA	的时钟
		GPIOA->MODER &= ~(0x03<<30);//清空PA15的模式
		GPIOA->MODER |= 0x01<<30;//设置PA15为输出模式
		GPIOA->ODR &= ~(0X01<<15);//PA15输出低电平(默认关闭蜂鸣器)
}
void drv_beep_on(void)
{
	//GPIO_SetBits(GPIOA, GPIO_Pin_15); 
	GPIOA->ODR |= (0X01<<15);//PA15输出高电平(打开蜂鸣器)
}

void drv_beep_off(void)
{
	//GPIO_ResetBits(GPIOA, GPIO_Pin_15); 
	GPIOA->ODR &= ~(0X01<<15);//PA15输出低电平(关闭蜂鸣器)
}

